package com.jason.system.service;

import com.jason.system.common.util.Pager;
import com.jason.system.entity.SolveOrder;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author jie
 * @version 1.0
 * success come from self-discipline
 * @date 2021/3/26 20:37
 */
public interface SolveOrderService {

  /**
   * 获取所有（完成工单）信息
   * @param startTime 开始时间
   * @param endTime   结束时间
   * @return List<SolveOrder>
   */
  List<SolveOrder> getAllSolveOrderByTime(Date startTime, Date endTime);

  /**
   * 根据主键查询（完成工单）信息
   * @param soId 登单id
   * @return SolveOrder
   */
  SolveOrder getSolveOrderById(Integer soId);

  /**
   * 根据学生id查询工单信息
   * @param page 页数
   * @param size 每页个数
   * @param sId 学生id
   * @return Pager<SolveOrder>
   */
  Pager<SolveOrder> searchSolveOrders(Integer page, Integer size, Integer sId);


  /**
   * 分页查询（完成工单）信息
   * @param page 页数
   * @param size 每页个数
   * @return Pager<SolveOrder>
   */
  Pager<SolveOrder> getSolveOrders(Integer page , Integer size);

  /**
   * 添加（完成工单）信息
   * @param solveOrder 登单信息
   */
  void insertSolveOrder(SolveOrder solveOrder);

  /**
   * 更新（完成工单）信息
   * @param solveOrder 登单信息
   */
  void updateSolveOrder(SolveOrder solveOrder);

  /**
   * 更新（完成工单）信息状态
   * @param soId 登单id
   * @param status 登单信息状态（已处理、未处理）
   */
  void updateSolveOrderStatus(Integer soId , Integer status);

  /**
   * 根据主键删除（完成工单）信息
   * @param soId 登单id
   * @return true or false
   */
  boolean deleteSolveOrderById(Integer soId);;

  /**
   * 批量删除（完成工单）信息
   * @param soIds 登单ids,以逗号分割
   * @return true or false
   */
  boolean deleteSolveOrders(String soIds);
}
